package com.wyl.auth.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wyl.auth.dto.SysRoleDto;
import com.wyl.auth.dto.SysRoleMenuDto;
import com.wyl.auth.entity.SysRole;
import com.wyl.auth.req.SysRoleReq;
import com.wyl.auth.vo.SysRoleVo;
import com.wyl.common.CommonPage;

import java.util.List;

/**
* @Description 角色表
* @Author WuYiLong
* @Date 2025-04-03
*/
public interface SysRoleService extends IService<SysRole> {

    /**
     * 保存
     *
     * @param dto
     */
    void save(SysRoleDto dto);

    /**
     * 分页
     *
     * @param req
     * @return
     */
    CommonPage<SysRoleVo> page(SysRoleReq req);

    /**
     * 删除
     *
     * @param ids
     */
    void deleteByIds(List<Long> ids);

    /**
     * 权限分配
     * @param sysRoleMenuDto
     */
    void assignPermission(SysRoleMenuDto sysRoleMenuDto);

    /**
     * 根据角色获取权限
     * @param roleId
     * @return
     */
    List<Long> listPermissionsByRoleId(Long roleId);

    /**
     * 角色列表
     * @return
     */
    List<SysRoleVo> listRoles();

}
